package com.hellobike.haxing.modules.wms.facade;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.hellobike.haxing.modules.wms.dto.ReturnSupplierDetailDto;
import com.hellobike.haxing.modules.wms.dto.ReturnSupplierHeaderDto;
import com.hellobike.haxing.modules.wms.dto.ReturnWarehouseDetailDto;
import com.hellobike.haxing.modules.wms.dto.ReturnWarehouseHeaderDto;
import com.hellobike.haxing.modules.wms.entity.ReturnSupplierDetail;
import com.hellobike.haxing.modules.wms.entity.ReturnSupplierHeader;
import com.hellobike.haxing.modules.wms.entity.ReturnWarehouseDetail;
import com.hellobike.haxing.modules.wms.entity.ReturnWarehouseHeader;
import com.hellobike.haxing.modules.wms.exception.WmsServiceException;

import java.util.List;

public interface WmsReturnFacade {


    void publishReturnWarehouseOrder(List<Long> detailIds, Long warehouseId, Integer userId) throws WmsServiceException;

    void receiveReturnWarehouseOrder(Long headerId, List<ReturnWarehouseDetail> details, Long warehouseId, Integer userId) throws WmsServiceException;

    void addReturnSupplierOrder(ReturnSupplierHeader supplierHeader, List<Long> detailIds, Long warehouseId, Integer userId) throws WmsServiceException;

    void confirmReturnSupplierOrder(Long headerId, List<ReturnSupplierDetail> details, Long warehouseId, Integer userId) throws WmsServiceException;

    IPage<ReturnWarehouseDetailDto> wrapperPageWarehouseDetail(IPage<ReturnWarehouseDetail> pageList);

    IPage<ReturnWarehouseHeaderDto> wrapperPageWarehouseHeader(IPage<ReturnWarehouseHeader> pageList);

    List<ReturnWarehouseHeaderDto> queryListByShippingHeaderId(Long shippingHeaderId);

    IPage<ReturnSupplierDetailDto> wrapperPageSupplierDetail(IPage<ReturnSupplierDetail> pageList);

    IPage<ReturnSupplierHeaderDto> wrapperPageSupplierHeader(IPage<ReturnSupplierHeader> pageList);
}
